package com.tabnet.beans.commande;

import java.util.Map;

import com.tabnet.beans.personnes.Client;
import com.tabnet.beans.produit.Etat;

/**
 * <p>Propriétés du bean Commande</p>
 * @author Corentin, Cyril, Neven, Anabella
 * */
public class Commande {

	private String _Num;
    private String _DateCommande;
    private String _DateValidation;
    private Client _Client;
    private Map<Integer, LigneCommande> _mapLigneCommande;
    private Etat _Etat;

    public String getNum() {
		return this._Num;
	}
    public String getDateCommande() {
        return this._DateCommande;
    }
    public String getDateValidation() {
        return this._DateValidation;
    }
    public Client getClient() {
        return this._Client;
    }
    public Map<Integer, LigneCommande> getLigneCommandes() {
        return this._mapLigneCommande;
    }
    public Etat getEtat() {
        return this._Etat;
    }

	public void setNum(String pNum) {
		this._Num = pNum;
	}
    public void setDateCommande( String pDateCommande ) {
        this._DateCommande = pDateCommande;
    }
    public void setDateValidation( String pDateValidation ) {
        this._DateValidation = pDateValidation;
    }
    public void setClient( Client pClient ) {
        this._Client = pClient;
    }
    public void setLigneCommandes( Map<Integer, LigneCommande> pmapLigneCommande ) {
        this._mapLigneCommande = pmapLigneCommande;
    }
	public void setEtat(Etat pEtat) {
		this._Etat = pEtat;
	}
	
	/**
	 * <p>Fonction calcTotalHT
	 * Calcul le montant total HT de la commande</p>
	 * @return le montant de la commande HT
	 * */
	public double calcTotalHT(){
		double res = 0;
		
		for(LigneCommande oLigneCommande : this._mapLigneCommande.values()){
			res += oLigneCommande.calcProduitHT();
		}
		
		return Math.round(res * 100) / 100;
	}
	
	/**
	 * <p>Fonction calcTotalTTC
	 * Calcul le montant total TTC de la commande</p>
	 * @return le montant de la commande TTC
	 * */
	public double calcTotalTTC(){
		return Math.round(this.calcTotalHT() * 1.196 * 100) / 100;
	}
}
